package com.jluzh10.learning.service;

import com.jluzh10.learning.domain.Comment;
import com.jluzh10.learning.domain.Course;

import java.util.List;

/**
 * @author yzg
 * @create 2019/5/24
 */

public interface CourseService {

    /**
     * 添加一个新课程
     *
     * @param course 课程对象
     * @return
     * @throws Exception
     */
    int addCourse(Course course) throws Exception;

    /**
     * 根据id查询课程详细信息
     *
     * @param id 课程id
     * @return
     */
    Course selectOne(Integer id) throws Exception;

    /**
     * 判断用户是否收藏改课程
     *
     * @param userId   用户id
     * @param courseId 课程id
     * @return
     */
    boolean isCollect(Integer userId, Integer courseId) throws Exception;

    /**
     * 根据主键更新课程信息，只更新不为null的字段
     *
     * @param course
     * @return
     */
    void updateByIdSelective(Course course) throws Exception;

    /**
     * 分页查询课程
     *
     * @param size          每页数量
     * @param pageNum       当前页码
     * @param course        查询条件
     * @param orderByClause 排序条件
     * @param key           用户自定搜索字符串
     * @return 课程list
     */
    List<Course> list(Integer size, Integer pageNum, Course course, String orderByClause, String key) throws Exception;



    int updateScopeByComment(Comment comment);
}
